#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <string.h>
//int main()
//{
//	const char* str1 = "abcdef";
//	const char* str2 = "bbbcsd";
//	if ((strlen(str2) - strlen(str1)) > 0)
//	{
//		printf("str2>str1\n");
//	}
//	else
//	{
//		printf("str1>str2\n");
//	}
//	return 0;
//}
//int my_strlen(const char* str)
//{
//	assert(str);
//	if (*str == '\0')
//		return 0;
//	else
//		return 1 + my_strlen(str + 1);
//}
//int main()
//{
//	char str1[] = "Sample string";
//	char str2[40];
//	char str3[40];
//	strcpy(str2, str1);
//	strcpy(str3, "copy successful");
//	printf("str1: %s\nstr2: %s\nstr3: %s\n", str1, str2, str3);
//	return 0;
//}
//char* my_strcpy(char* dest, const char* src)
//{
//	char* ret = dest;
//	assert(dest != NULL);
//	assert(src != NULL);
//	while ((*dest++ = *src++))
//	{
//		;
//	}
//	return ret;
//}
//int main()
//{
//	char str[80];
//	strcpy(str, "these ");
//	strcat(str, "strings ");
//	strcat(str, "are ");
//	strcat(str, "concatenated.");
//	puts(str);
//	return 0;
//}
//char* my_strcat(char* dest, const char* src)
//{
//	char* ret = dest;
//		assert(dest != NULL);
//	assert(src != NULL);
//	while (*dest)
//	{
//		dest++;
//	}
//	while ((*dest++ = *src++))
//	{
//		;
//	}
//	return ret;
//}
//int main()
//{
//    char key[] = "apple";
//    char buffer[80];
//    do {
//        printf("Guess my favorite fruit? ");
//        fflush(stdout);
//        scanf("%79s", buffer);
//    } while (strcmp(key, buffer) != 0);
//    puts("Correct answer!");
//    return 0;
//}
//int my_strcmp(const char* str1, const char* str2)
//{
//	int ret = 0;
//	assert(str1 != NULL);
//	assert(str2 != NULL);
//	while (*str1 == *str2)
//	{
//		if (*str1 == '\0')
//			return 0;
//		str1++;
//		str2++;
//	}
//	return *str1 - *str2;
//}
//int main()
//{
//	char str1[20];
//	char str2[20];
//	strcpy(str1, "To be ");
//	strcpy(str2, "or not to be");
//	strncat(str1, str2, 6);
//	printf("%s\n", str1);
//	return 0;
//}
//int main()
//{
//	char str1[] = "to be or not to be";
//	char str2[40];
//	char str3[40];
//
//	/* copy to sized buffer (overflow safe): */
//	strncpy(str2, str1, sizeof(str2));
//
//	/* partial copy (only 5 chars): */
//	strncpy(str3, str2, 5);
//	str3[5] = '\0';   /* null character manually added */
//
//	puts(str1);
//	puts(str2);
//	puts(str3);
//
//	return 0;
//}
//int main()
//{
//    char str[][5] = { "R2D2" , "C3PO" , "R2A6" };
//    int n;
//    puts("Looking for R2 astromech droids...");
//    for (n = 0; n < 3; n++)
//        if (strncmp(str[n], "R2xx", 2) == 0)
//        {
//            printf("found %s\n", str[n]);
//        }
//    return 0;
//}
//int main()
//{
//	char str[] = "This is a simple string";
//	char* pch;
//	pch = strstr(str, "simple");
//	strncpy(pch, "sample", 6);
//	printf("%s\n", str);
//	return 0;
//}
char* strstr(const char* str1, const char* str2)
{
    char* cp = (char*)str1;
    char* s1, * s2;
    if (!*str2)
        return((char*)str1);
    while (*cp)
    {
        s1 = cp;
        s2 = (char*)str2;
        while (*s1 && *s2 && !(*s1 - *s2))
            s1++, s2++;
        if (!*s2)
            return(cp);
        cp++;
    }
    return(NULL);
}

